perm filename SUBR3.F4[MUS,LCS] blob sn#166864 filedate 1975-07-06 generic text, type T, neo UTF8
00010	C   SUBR3.F4
00100	C  THIS SUBR. CHANGES INST. NAME WHEN IT OVERLAPS WITH ITSELF.
00150	C  YOU MUST SET UP 3 MORE COPIES OF CLAR AS CLAR2, CLAR3 AND CLAR4.
00200	
00500		SUBROUTINE SUBR
00600		COMMON /INS/ INST(27),BG(60)
00700		COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)
00800	C   INUM=INST#  IPAR=PARAM#  
00900	C   BT=BASIC TIME P1 WHEN SUBROUTINE IS CALLED
01000	C   IF IREST IS <0, THAT NOTE WILL BE A REST.  
01100	C   INST=INST. NAME,  BG=INSTS' BEGIN TIMES.
01200	C   NOTE #S IN SUBROUTINE: (1-84)  C4=37  FS4=43  C5=49  ETC.
01300	C   F1=86  F15=100 (NO F16!)
01400	
01500		DIMENSION JINST(4)
01600		DATA JINST/'CLAR','CLAR2','CLAR3','CLAR4'/
01700	C  SETS UP INST. NAMES
01800	
01900		IF(CNT(INUM).NE.1)GO TO 1
02000	C  'A' AND 'L' ARE INITIALIZED ON FIRST NOTE
02100		A=0
02200		L=1
02300	
02400	1	IF(A.GT.P(1))L=L+1
02500	C  L CHANGES VALUE IF THERE IS A TIME OVERLAP
02600	
02700		IF(L.GT.4)L=1
02800	C  RESET L IF IT GETS TOO BIG.
02900	
03000		A=P(1)+P(2)*DF
03100	C  A STORES THE END POINT IN TIME OF CURRENT NOTE.
03200	
03300		INST(INUM)=JINST(L)
03400	C  THIS SETS THE INST NAME FOR EVERY NOTE.
03500	
03600		RETURN
03700		END
03800	
03900	
04000	C TYPICAL INPUT 
04100	
04200	C CLAR 0 7;
04300	C P2 .15;
04400	C P3 MOVE/3.5  C2,C3  C6,C7; 3.5  C6,C7  C2,C3;
04500	C P4 500; < BE CAREFUL FOR AMPLITUDE OVERFLOWS!
04600	C P5 F1; P7 F4 SUBL;
04700	C P6 DF 3 ;
04800	C END;